<html>
<script>

    // new 运算符创建并初始化一个新的对象。关键new 后跟谁一个函数调用，这里的函数
    // 称做构造函数（constructor）,构造函数用以初始化一个新的对象。javaScrit语言
    // 核心中的原始类型都包含内置构造函数。例如
    // var o = new Object(); // 创建一个空的对象，和{}一个
    // var a = new Array(); // 创建一个空数组，h和[]一样
    // var d = new Data(); // 创建一个表示当前时间的Date对象
    // var r = new RegExp("js"); //创建一个可以进行模式匹配的EegExp对象 

    // 例子 通过原型继承创建一个新的对象
    function inherit(p) {
        if (p == null) { throw TypeError(); }
        if (Object.create) {

        }
        var t = typeof p;
        if (t !== "object" && t !== "function") { throw TypeError(); }
        function f() { };
        f.prototype = p;
        return new f();
    }

    // ** 对象的原型属性构成了一个链，通过这个“链“可以实现属性的继承。




    var o = {} // 从Object.prototype 继承对象的方法
    o.x = 1;
    var p = inherit(o);  // p继承o和Object.prototype



    3
    p.y = 2; // 给p定义一个属性
    var q = inherit(p);  // q继承p、o和Object.prototype
    q.z = 3; // 给q定义一个属性z
    var s = q.toString(); // toString继承自Object.prototype
    q.x + q.y // => 3: x 和y分别继承自o和p
    // console.log(q)


    

    // 访问一个不存在的属性并不会报错
    // var book={};
    // console.log(book.subtitle);
    // // 访问长度报错
    // console.log(book.subtitle.length)
    // inherit({x:1,y:2});

    // 删除属性
    o = { x: 1 };
    // delete o.x; // o有一个属性o，并继承属性toSring
    // delete o.x; // 删除x,返回true


</script>



<head>
    <title>放置文章标题</title>
</head>

<body>

</body>

</html>